//
//  PrescriptionOrderDrugsListCell.swift
//  EyeVisionForPatients
//
//  Created by PMC on 2020/3/3.
//  Copyright © 2020 tao Tao. All rights reserved.
//

import UIKit

class PrescriptionOrderDrugsListCell: UITableViewCell {
    
    private var viewModel: PrescriptionOrderDetailCellViewModel?
    
    func bind(to viewModel: PrescriptionOrderDetailCellViewModel) {
        self.viewModel = viewModel
        totalCostLabel.text = viewModel.totalPrice
        self.tableView.reloadData()
    }
    
    @IBOutlet private weak var tableView: UITableView! {
        didSet {
            tableView.delegate = self
            tableView.dataSource = self
            tableView.rowHeight = 44
            tableView.estimatedRowHeight = UITableView.automaticDimension
            tableView.backgroundColor = .white
            tableView.tableFooterView = UIView()
            tableView.register(ChatPrescriptionRowCell.nibForCell(),
                               forCellReuseIdentifier: ChatPrescriptionRowCell.reuseIdentifier())
            tableView.register(ChatPrescriptionSectionHeader.nibForCell(), forHeaderFooterViewReuseIdentifier: ChatPrescriptionSectionHeader.reuseIdentifier())
        }
    }
    
    @IBOutlet private weak var totalCostLabel: UILabel!
    
}

extension PrescriptionOrderDrugsListCell: UITableViewDataSource, UITableViewDelegate {
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return viewModel?.westernItems.count ?? 0
    }
    
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        guard let viewModel = viewModel else { return UITableViewCell() }
        
        let cell = tableView.dequeueReusableCell(withIdentifier: ChatPrescriptionRowCell.reuseIdentifier(),
                                                 for: indexPath) as! ChatPrescriptionRowCell
        cell.configure(with: viewModel.westernItems[indexPath.row])
        return cell
    }
    
    func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
        let header = tableView.dequeueReusableHeaderFooterView(withIdentifier: ChatPrescriptionSectionHeader.reuseIdentifier()) as? ChatPrescriptionSectionHeader
        return header
    }
    
    func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
        return 20
    }
    

    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        guard let model = viewModel?.westernItems[indexPath.row],
              let instructionUrl = model.instructionUrl,
              !instructionUrl.isEmpty else { return }
        let vc = YSGWebViewController(url: instructionUrl)
        vc.title = model.name
        UIApplication.lastViewcontroller()?.navigationController?.pushViewController(vc, animated: true)
    }
}

